The invention relates to a control unit for a motor vehicle, to a programming unit and to a programming system.
Modern motor vehicles have a plurality of program-controlled control units. The control units usually comprise a program memory, which can be programmed in an installed state of the control unit. In the case of today's control units, the program memory is frequently designed as a flash memory. Flash memories are non-volatile memory modules, in the case of which blank or deleted cells can be rewritten at any time but where the deleting of cells can only take place in segments. The control units frequently have a diagnostic interface by way of which the control unit can be coupled with a vehicle-independent diagnostic and/or testing device. During a reprogramming of the control units, a new version of the control unit software, for example, firmware, is in each case loaded into the control unit by means of the diagnostic and/or testing device.
With the rising functionality of the control units and a growing number of different control units, the data quantity of program codes, which has to be transmitted to the control units during the production and/or during a servicing, also increases.
It is an object of the invention to create control unit for a motor vehicle, a programming unit and a programming system which permit a flexible and/or reliable programming of the control unit.
This and other objects are achieved, according to a first aspect of the invention, by a control unit for a motor vehicle having a central processing unit, the central processing unit being designed for executing one or more control programs. The control unit further includes at least one communication interface for sending and receiving data and a program memory for storing program data of the respective control programs. For a programming of the control unit with program data, which are stored in a specified manner in the program memory, the control unit is designed for supporting a specified quantity of protocols. The control unit is designed for reading-in and analyzing a program data updating prompt for at least one control program to be updated, which prompt is provided at the communication interface. The program data updating prompt comprises at least a first indicator which represents conceivable protocols which can be used for the programming with updated program data of the respective control program. The control unit is also designed for, in each case, as a function of the first indicator, determining a second indicator, which represents that protocol from the quantity of protocols which is to be used for the programming of the control unit with the program data of the control program to be updated. The control unit is designed for sending, by way of the communication interface, in response to the program data updating prompt, a program data request, which comprises the second indicator.
In this case, “programming” means an importing of one or more control programs into the control unit such that the control unit can implement the respective control program. A conceivable protocol, which can be used for the programming of the control unit is the Unified Diagnostic Services Protocol (UDS Protocol). The UDS Protocol is a communication protocol that was developed for motor vehicles and permits a communication between the respective control unit and a unit outside the vehicle. For this purpose, the respective motor vehicle may have a diagnostic interface, which makes it possible to couple the unit to a vehicle data bus. It thereby becomes possible, for example, to retrieve a fault memory of the respective control unit and/or to load one or more control programs, particularly current firmware, into the program memory. The UDS Protocol can be used for simpler control units, which, for example, have a microcontroller and/or are designed as an embedded system. With the increasing functionality and complexity of the control units which, for example, have one or more processors and/or a different program memory structure, it may be necessary to use different protocols for the programming of the storage device in order to permit a reliable programming. A presetting of the protocol by the control unit makes it possible that, as a function of a specified hardware and software platform of the control unit, the protocol can be selected in an appropriate manner, so that a reliable, flexible and/or rapid programming of the control unit becomes possible. In this case, the control unit may be designed for directly receiving the program data from an appropriately designed programming unit, which is coupled with the control unit by way of the communication interface, and/or for downloading or requesting the program data from an external data source by using an address for establishing a connection between the control unit and the external data source.
According to a second aspect of the invention, a programming unit is provided for at least one control unit of a motor vehicle. The programming unit has a further communication interface by way of which the programming unit can be coupled with the respective control unit. Furthermore, the programming unit is designed for retrieving a program version of at least one control program of the respective control unit with which it is coupled, and when it recognizes that the at least one control program is not stored in a specified program version in the control unit, for sending a program data updating prompt for at least the one control program to be updated, by way of the further communication interface to the respective control unit. In this case, the program data updating prompt comprises at least a first indicator, which represents conceivable protocols that can be used for the programming with updated program data of the respective control program. The programming unit is further designed for analyzing a program data request provided in response to the program data updating prompt at the further communication interface, the program data request comprising a second indicator which represents a protocol selected by the respective control unit. The programming unit is further designed for indirectly and/or directly, as a function of the analyzing result, providing the programming with the current program data according to the respectively selected protocol.
When the providing is direct, the program data are provided by the programming unit and sent to the control unit. When the providing is indirect, the programming unit informs the control unit of an address of a data source from which the control unit can request and/or download the program data.
According to a third aspect of the invention, a programming system is provided which comprises at least one control unit according to the first aspect and one programming unit according to the second aspect, the programming unit being coupled with the respective control unit.
Other objects, advantages and novel features of the present invention will become apparent from the following detailed description of one or more preferred embodiments when considered in conjunction with the accompanying drawings.